#include "Resources.h"
#include "Ogre.h"

#include "Callback.h"
#include "Listener.h"
#include "Sound.h"
#include "SoundManager.h"

#ifndef SOUNDFACTORY_H_
#define SOUNDFACTORY_H_

namespace UniverseSound
{
	// Movable Factory for creating sound instances
	class SoundFactory : public Ogre::MovableObjectFactory
	{
	public:
		SoundFactory();
		~SoundFactory();

		static Ogre::String FACTORY_TYPE_NAME;

		const Ogre::String& getType() const;

		void destroyInstance(Ogre::MovableObject *obj);

	protected:
		Ogre::MovableObject *createInstanceImpl(const Ogre::String& name, const Ogre::NameValuePairList *params);
	};
}

#endif